package com.phiture.erp.produce.core.pojo.vo;

import com.phiture.erp.produce.dal.entity.ErpBomItemsDO;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;
import java.util.*;
import javax.validation.constraints.*;
import java.math.BigDecimal;
import org.springframework.format.annotation.DateTimeFormat;
import java.time.LocalDateTime;

@Schema(description = "管理后台 - bom新增/修改 Request VO")
@Data
public class ErpBomSaveReqVO {

    @Schema(description = "编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "13138")
    private Long fid;

    @Schema(description = "编码")
    private String fnumber;

    @Schema(description = "bom名称", example = "李四")
    private String fname;

    @Schema(description = "bom类型", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
    @NotNull(message = "bom类型不能为空")
    private Long fbomtype;

    @Schema(description = "生产数量", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotNull(message = "生产数量不能为空")
    private BigDecimal fproductqty;

    @Schema(description = "bom用途", requiredMode = Schema.RequiredMode.REQUIRED, example = "2")
    @NotNull(message = "bom用途不能为空")
    private Long fusagetype;

    @Schema(description = "物料", example = "16141")
    private Long fmaterialid;

    @Schema(description = "规格型号")
    private String fmodel;

    @Schema(description = "成品率")
    private BigDecimal fyield;

    @Schema(description = "bom组", requiredMode = Schema.RequiredMode.REQUIRED, example = "31497")
    @NotNull(message = "bom组不能为空")
    private Long fbomgroupid;

    @Schema(description = "工程图号")
    private String fpicturenumber;

    @Schema(description = "业务日期")
    private LocalDateTime fbizdate;

    @Schema(description = "描述", example = "你说的对")
    private String fdescription;

    @Schema(description = "审核人", example = "5443")
    private String fauditorid;

    @Schema(description = "审核时间")
    private LocalDateTime faudittime;

    @Schema(description = "单据状态", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
    @NotNull(message = "单据状态不能为空")
    private Long fbasestatus;

    @Schema(description = "计量单位", example = "13257")
    private Long funitid;

    @Schema(description = "bom分录列表")
    private List<ErpBomItemsDO> bomItemss;

}